package com.dinner.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dinner.model.DinnerUser;
import com.dinner.model.Seller;
import com.dinner.service.OrderService;

public class OrderHandlingAction extends Action {

	private OrderService service= null;

	/**
	 * @return the service
	 */
	public OrderService getService() {
		return service;
	}

	/**
	 * @param service the service to set
	 */
	public void setService(OrderService service) {
		this.service = service;
	}

	/* (non-Javadoc)
	 * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		HttpSession session = request.getSession();
		DinnerUser user = (DinnerUser) session.getAttribute("user");
		if (user == null || user.getClass() != Seller.class) {
			return mapping.findForward("LoginError");
		}
		
		String sellerID = user.getUserID();
		String orderID = request.getParameter("orderID");
		
		try {
			service.handleOrder(sellerID, Integer.parseInt(orderID));
		} catch (NumberFormatException e) {
			request.setAttribute("OrderHandlingFail", true);
		}
		return mapping.getInputForward();
	}
	
	
}
